// import { Toast } from 'vant';

/***************************
 * 微信工具类
 ***************************/

// /**
//  * 后台获取微信鉴权信息
//  * @param {*} jsApiList : 需要获取的 config 信息 如：  ['onMenuShareAppMessage', 'onMenuShareTimeline']
//  * @param {*} debug
//  * @param {*} beta
//  * @param {*} url
//  */
// export const wxCheckConfig = (jsApiList = [], debug, beta, url) => {
// 	// 跟后台换取鉴权信息的url 在IOS中为初始化的落地页面 在安卓中为当前页面
// 	url = url || (isIos && Vue.landingPageUrl ? Vue.landingPageUrl : window.location.href);
// 	return new Promise((resolve, reject) => {
// 		if ('micromessenger' != window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) {
// 			reject({
// 				respCode: -1,
// 				respMsg: `请在微信中打开此公众号`,
// 			});
// 			return;
// 		}
// 		wxGetConfigInfoAPI({
// 			url: url,
// 		}).then(({ respCode, respMsg, result }) => {
// 			if (respCode !== '0') {
// 				Toast.fail(respMsg);
// 				reject({
// 					respCode,
// 					respMsg,
// 					result,
// 				});
// 				return;
// 			}
// 			const { appId, timeStamp, nonceStr, signature } = result;

// 			Vue.wx.config({
// 				beta: !!beta,
// 				debug: !!debug,
// 				appId: appId,
// 				timestamp: timeStamp,
// 				nonceStr: nonceStr,
// 				signature: signature,
// 				jsApiList: jsApiList,
// 			}),
// 				Vue.wx.ready(function() {
// 					resolve({
// 						beta: !!beta,
// 						debug: !!debug,
// 						appId: appId,
// 						timestamp: timeStamp,
// 						nonceStr: nonceStr,
// 						signature: signature,
// 						jsApiList: jsApiList,
// 					});
// 				}),
// 				Vue.wx.error(function(a) {
// 					reject({
// 						respCode: -1,
// 						respMsg: `${a}`,
// 					});
// 					// Toast.fail(respMsg);
// 				});
// 		});
// 	});
// };

// /**
//  * 微信分享
//  * @param {*} title   标题，默认为当前页面title
//  * @param {*} desc
//  * @param {*} imgUrl
//  * 
//  * @description 请注意 微信分享只是设置微信公众号右上角分享按钮的内容 而不是点击触发分享，所以一般只有下面两种请教
//  *   1.  页面初始化的时候就设置当前页面分享的内容 而不是默认分享
//  *   2. 用户点击页面上的一个分享按钮，再设置分享的内容 但是这时候需要提示用户去点击右上角分享按钮去分享
//  * 
//  * @example 
//  *  import {  wxShare } from 'utils/wx.js';
//     wxShare(
//         `微信分享`,
//         `这是描述信息`,
//         `http://www.yjzgo.com/lt-page/pc/static/img/Logo.e438330.png`,
//         {                // 可以不填写
//           debug: true
//         }
//       );
//  */
// export const wxShare = (title, desc, imgUrl, configOptions) => {
// 	// 获取当前页面的title
// 	let titleEle;
// 	let pagetitle =
// 		null == document.title &&
// 		(titleEle = document.getElementByTagName('title')) &&
// 		(0 < titleEle.length ? titleEle[0] : ' ');

// 	configOptions = {
// 		debug: false,
// 		beta: false,
// 		url: undefined,
// 		...configOptions,
// 	};

// 	return new Promise((resolve, reject) => {
// 		wxCheckConfig(
// 			['updateAppMessageShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline', 'updateTimelineShareData'],
// 			configOptions.debug,
// 			configOptions.beta
// 		)
// 			.then(() => {
// 				Vue.wx.ready(function() {
// 					if (Vue.wx.updateAppMessageShareData) {
// 						//需在用户可能点击分享按钮前就先调用
// 						Vue.wx.updateAppMessageShareData({
// 							title: title || pagetitle, // 分享标题
// 							desc: desc, // 分享描述
// 							link: configOptions.url || window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
// 							imgUrl: imgUrl, // 分享图标
// 							success: function() {
// 								// 设置成功
// 								resolve({});
// 							},
// 							cancel: function(e) {
// 								reject({
// 									respCode: -1,
// 									respMsg: '取消分享',
// 								});
// 							},
// 						});
// 						Vue.wx.updateTimelineShareData({
// 							title: title || pagetitle, //
// 							link: configOptions.url || window.location.href, //
// 							imgUrl: imgUrl, //
// 							success: function(e) {
// 								//“分享到朋友圈”及“分享到QQ空间”
// 								resolve({});
// 							},
// 							cancel: function(e) {
// 								reject({
// 									respCode: -1,
// 									respMsg: '取消分享',
// 								});
// 							},
// 						});
// 						return {};
// 					}
// 					if (Vue.wx.onMenuShareAppMessage) {
// 						// 分享给朋友;
// 						Vue.wx.onMenuShareAppMessage(
// 							{
// 								title: title || pagetitle, // 分享标题
// 								desc: desc, // 分享描述
// 								link: configOptions.url || window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
// 								imgUrl: imgUrl, // 分享图标
// 							},
// 							function(res) {
// 								//这里是回调函数
// 								resolve({});
// 							},
// 							function(err) {
// 								// console.log('err:', err)
// 								reject({
// 									respCode: -1,
// 									respMsg: err || '分享失败',
// 								});
// 							}
// 						);
// 						//分享到朋友圈
// 						Vue.wx.onMenuShareTimeline({
// 							title: title || pagetitle, // 分享标题
// 							link: configOptions.url || window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
// 							imgUrl: imgUrl, // 分享图标
// 							success: function() {
// 								// 用户点击了分享后执行的回调函数
// 								resolve({});
// 							},
// 						});
// 					}
// 				});
// 			})
// 			.catch(_ => {
// 				reject({
// 					respCode: -1,
// 					respMsg: _.respMsg || '分享失败',
// 				});
// 			});
// 	});
// };

/**
 * 微信支付工具类
 * 
 * @example
 *  wxPay(appid, timeStamp, nonceStr, packAge, signType, paySign)
    .then(() => {
      this.$router.push({
        path: `/order/pay-success/${orderNo}`,
        query: {
          sid: this.$route.query.sid
        }
      });
    })
    .catch(({ respCode, respMsg }) => {
      this.$dialog.alert({
        title: '支付失败',
        message: respMsg
      });
    });
 * 
 * @author 顾章华
 * @attention 请在调用此接口之前通过后台接口获取下列相关数据
 * 
 * @param {*} appid       // 参考: "wx66d1bfc3aa9fe4b2"
 * @param {*} timeStamp   // 参考:  "fA3hubqFk4wp0xEK" // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
 * @param {*} nonceStr    // 参考:  "prepay_id=null"  // 支付签名随机串，不长于 32 位
 * @param {*} packAge     // 参考:  C7E0910DF8B53C84BB382B8CD5CD4286" // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
 * @param {*} signType    // 参考:  "MD5" // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
 * @param {*} paySign     // 参考: "1582191552" // 支付签名
 * 
 */
export const wxPay = (appid, timeStamp, nonceStr, packAge, signType, paySign) => {
	return new Promise((resolve, reject) => {
		// 不是微信环境 不存在WeixinJSBridge这个全局变量所以报错

		uni.requestPayment({
			provider: 'wxpay',
			timeStamp: timeStamp,
			nonceStr: nonceStr,
			package: packAge,
			signType: signType,
			paySign: paySign,
			success: function(res) {
				resolve(res);
			},
			fail: function(err) {
				reject(err);
			},
		});
	});
};
